<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  
  <title>tomcat | Hexo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="tomcat安装教程">
<meta property="og:type" content="article">
<meta property="og:title" content="tomcat">
<meta property="og:url" content="https://renshengdian.gitee.io/renshengdian/2021/11/01/tomcat/index.html">
<meta property="og:site_name" content="Hexo">
<meta property="og:description" content="tomcat安装教程">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/0c300258a368fd2ebb7764f8c64117fb.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/d449605fd326c125aa5ea5b1ce70e1ba.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/a1aa77d5a74539511048232c66945a49.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/3a7ece17b047da7f46d4b22f446c267f.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/9d6a27c9c94a11e0f483c06a23ddc8e2.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/daf9d9a926a70114ccda545787b1da19.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/5a6d824c50b4b7840a5bf14ee85a5a58.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/ce6d306389ecdfbc6a398175f0033580.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/bc40097303eb735a8dc8a42094008bf8.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/1a89a7e9cbe8d3169cd138fdd3637478.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/7e5f77484d022d92c0339ea7dbe49c0f.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/5181c8498274e12eb11266461ab3bb67.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/79fb1a75436c57d9290769426989cc24.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/ddfe62425665cd899fb19c8aa7d75c5d.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/0ffdff09f86c312e11b80229f5ce326f.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/bb962dc63ebf6d01c8eb75bf29159249.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/7330f0e33ce2073f7172dc51e9376da2.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/img_convert/60c6a3278ae7f2cbe9bd2865f2ad3587.png">
<meta property="article:published_time" content="2021-11-01T09:48:01.000Z">
<meta property="article:modified_time" content="2021-11-02T05:43:25.167Z">
<meta property="article:author" content="John Doe">
<meta property="article:tag" content="tomcat">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://img-blog.csdnimg.cn/img_convert/0c300258a368fd2ebb7764f8c64117fb.png">
  
    <link rel="alternate" href="/renshengdian/atom.xml" title="Hexo" type="application/atom+xml">
  
  
    <link rel="shortcut icon" href="/renshengdian/favicon.png">
  
  
    
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@0.0.71/index.min.css">

  
  
<link rel="stylesheet" href="/renshengdian/css/style.css">

  
    
<link rel="stylesheet" href="/renshengdian/fancybox/jquery.fancybox.min.css">

  
<meta name="generator" content="Hexo 5.4.0"></head>

<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/renshengdian/" id="logo">Hexo</a>
      </h1>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/renshengdian/">Home</a>
        
          <a class="main-nav-link" href="/renshengdian/archives">Archives</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/renshengdian/atom.xml" title="RSS Feed"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="Search"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="https://renshengdian.gitee.io/renshengdian"></form>
      </div>
    </div>
  </div>
</header>

      <div class="outer">
        <section id="main"><article id="post-tomcat" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/renshengdian/2021/11/01/tomcat/" class="article-date">
  <time class="dt-published" datetime="2021-11-01T09:48:01.000Z" itemprop="datePublished">2021-11-01</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="p-name article-title" itemprop="headline name">
      tomcat
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <h1 id="tomcat安装教程"><a href="#tomcat安装教程" class="headerlink" title="tomcat安装教程"></a>tomcat安装教程</h1><span id="more"></span>

<h2 id="一丶tomcat介绍"><a href="#一丶tomcat介绍" class="headerlink" title="一丶tomcat介绍"></a>一丶tomcat介绍</h2><p>tomcat 服务器是一个免费的开放源代码的Web 应用服务器，属于轻量级应用<a target="_blank" rel="noopener" href="https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8">服务器</a>，在中小型系统和并发访问用户不是很多的场合下被    普遍使用，是开发和调试<code>JSP</code> 程序的首选。对于一个初学者来说，可以这样认为，当在一台机器上配置好Apache 服务器，可利用它响应<a target="_blank" rel="noopener" href="https://baike.baidu.com/item/HTML">HTML</a>（<a target="_blank" rel="noopener" href="https://baike.baidu.com/item/%E6%A0%87%E5%87%86%E9%80%9A%E7%94%A8%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80/6805073">标准通用标记语言</a>下的一个应用）页面的访问请求。实际上Tomcat是Apache 服务器的扩展，但运行时它是独立运行的，所以当你运行tomcat 时，它实际上作为一个与Apache 独立的进程单独运行的。</p>
<h2 id="二丶版本选择"><a href="#二丶版本选择" class="headerlink" title="二丶版本选择"></a>二丶版本选择</h2><p>首先我们需要选好版本，可以参考官方的版本说明：<a target="_blank" rel="noopener" href="https://tomcat.apache.org/whichversion.html">https://tomcat.apache.org/whichversion.html</a>如图，</p>
<p>我选择的是<strong>tomcate9</strong></p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/0c300258a368fd2ebb7764f8c64117fb.png"></p>
<h2 id="三丶下载"><a href="#三丶下载" class="headerlink" title="三丶下载"></a>三丶下载</h2><p>Tomcat是免费开源的web服务器软件，所以我们可以直接在官网下载:<a target="_blank" rel="noopener" href="https://tomcat.apache.org/index.html">https://tomcat.apache.org/index.html</a></p>
<p>在左侧选择自己要下载的版本</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/d449605fd326c125aa5ea5b1ce70e1ba.png"></p>
<p>这里我选了Tomcat 9，直接下载最新的发行版，页面拉到最下就是最新的版本号9.0.43，这里下载二进制的<strong>核心版</strong>就行了，<strong>不要下载源代码版</strong>，那只是研究源码用的，不能直接执行。</p>
<p>选64位的压缩包直接下载：</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/a1aa77d5a74539511048232c66945a49.png"></p>
<p><strong>如果要下载其他版本:</strong></p>
<p>如果不想下载最新的发行版，可以点页面上的Archives，会弹出9的所有版本可供下载</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/3a7ece17b047da7f46d4b22f446c267f.png"></p>
<p>版本列表如下图</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/9d6a27c9c94a11e0f483c06a23ddc8e2.png"></p>
<p>点击自己要下载的版本，到如图，点击<strong>bin</strong>，src下是源码包如果要研究源码可以下载，但是如果要使用一定要选<strong>bin</strong>下的包</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/daf9d9a926a70114ccda545787b1da19.png"></p>
<p>windows一般还是选64位的包，也有人喜欢用执行文件安装，但是我个人还是推荐压缩包格式，便于管理</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/5a6d824c50b4b7840a5bf14ee85a5a58.png"></p>
<h2 id="四丶安装"><a href="#四丶安装" class="headerlink" title="四丶安装"></a>四丶安装</h2><p>压缩包的安装方式很简单，直接解压到想放的地方即可</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/ce6d306389ecdfbc6a398175f0033580.png"></p>
<p>由于tomcat是Java编写的，所以需要JDK的环境支持，本机必须配置好JDK的环境变量。</p>
<h2 id="五丶启动"><a href="#五丶启动" class="headerlink" title="五丶启动"></a>五丶启动</h2><p>启动只需要执行tomcat安装目录下的<strong>bin/startup.bat</strong>文件即可。</p>
<p>弹出黑框即是成功了（乱码问题参见后面<strong>问题解决</strong>部分）。、</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/bc40097303eb735a8dc8a42094008bf8.png"></p>
<p>测试，打开浏览器，地址栏输入：<a target="_blank" rel="noopener" href="http://localhost:8080/">http://localhost:8080/</a></p>
<p>发现出现了以下界面，就算<strong>成功</strong>启动了</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/1a89a7e9cbe8d3169cd138fdd3637478.png"></p>
<h2 id="六丶本地配置"><a href="#六丶本地配置" class="headerlink" title="六丶本地配置"></a>六丶本地配置</h2><p>通过上面，我们已经正常的启动了tomcat了，但是还可以进行一些配置，优化使用。</p>
<p>个人觉得有时候其实这步不是很必要，大部分我们都是直接双击脚本启动或整合到IDEA、eclipse中，不用配置环境变量这些也可以正常</p>
<p>使用。</p>
<p>但是如果有时间的话，随便了解一下配置一个也可以，我教程也写出来了。毕竟也不能保证哪天整合tomcat到某个新的开发工具时，会</p>
<p>不会要求你配置tomcat的环境变量。</p>
<h3 id="1-为什么要进行环境变量配置"><a href="#1-为什么要进行环境变量配置" class="headerlink" title="1.为什么要进行环境变量配置"></a>1.为什么要进行环境变量配置</h3><p>前面我们是用双击startup.bat脚本的方法启动tomcat的，但是也可以通过命令行cmd启动：</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/7e5f77484d022d92c0339ea7dbe49c0f.png"></p>
<p>这时候有两种方式执行startup.bat，一种是控制当前目录到tomcat的bin目录下，然后直接执行startup.bat，这种方法无需配置任何环境</p>
<p>变量，和我们手动双击执行是一样的。</p>
<p>另一种方式，是在任意的目录，输入了tomcat目录下startup.bat脚本的全路径名，通常这种情况也是可以执行任何文件的，前提是这个</p>
<p>文件没有依赖其他文件。刚好这个startup.bat脚本依赖了一个同为bin目录下的叫catalina.bat的脚本。所以用这种方式执行startup.bat会</p>
<p>报错，如图：<br><img src="https://img-blog.csdnimg.cn/img_convert/5181c8498274e12eb11266461ab3bb67.png"></p>
<p>这时候，就需要我们配置<strong>CATALINA_HOME</strong>系统环境变量，让它能够正常找到<strong>bin\catalina.bat</strong>脚本了</p>
<h3 id="2-配置环境变量"><a href="#2-配置环境变量" class="headerlink" title="2.配置环境变量"></a>2.配置环境变量</h3><p>环境变量在哪配我想应该不用多说了，如果没配JDK的环境变量，是启动不了tomcat的。</p>
<p>直接在<strong>系统变量</strong>下新建一个环境变量：</p>
<p><strong>变量名</strong>：CATALINA_HOME</p>
<p><strong>变量值</strong>：tomcat安装目录</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/79fb1a75436c57d9290769426989cc24.png"></p>
<p>然后就解决了上面所说的第二种启动方式。</p>
<p>我们还可以顺便配置一下<strong>startup.bat</strong>脚本的环境变量，这样我们在cmd任意目录下直接输入<strong>startup.bat</strong>就可以启动Tomcat了。</p>
<p>在系统变量的Path变量中新增一条：</p>
<p>值为：%CATALINA_HOME%\bin</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/ddfe62425665cd899fb19c8aa7d75c5d.png"></p>
<p>这里我直接用了CATALINA_HOME的环境变量，你也可以新建一个TOMCAT_HOME，然后值和CATALINA_HOME的变量一样，再加入进</p>
<p>去，都可以。</p>
<p><strong>测试</strong>：</p>
<p>可以看到，在任意地方直接输入startup.bat，都可以正常启动了。</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/0ffdff09f86c312e11b80229f5ce326f.png"></p>
<h3 id="3-注册进服务列表"><a href="#3-注册进服务列表" class="headerlink" title="3.注册进服务列表"></a>3.注册进服务列表</h3><p>我们还可以将其注册到windows服务列表中，这样就可以选择配置开机自启、后台启动等了，毕竟每次打开tomcat都要有个命令行窗口</p>
<p>看着也有点麻烦。</p>
<p>原理是tomcat目录下的service.bat脚本，确保有这个脚本，并且前面配置好了环境变量，我们就可以直接注册了</p>
<p>cmd任意位置输入指令：<br><code>service install</code></p>
<p>即可</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/bb962dc63ebf6d01c8eb75bf29159249.png"></p>
<p>本质上是执行了tomcat\bin目录下的service.bat脚本。</p>
<p><strong>测试</strong>：</p>
<p>打开<strong>服务</strong>列表，可以看到，它已经存在这里了。</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/7330f0e33ce2073f7172dc51e9376da2.png"></p>
<h2 id="七丶问题解决"><a href="#七丶问题解决" class="headerlink" title="七丶问题解决"></a>七丶问题解决</h2><h3 id="1-日志乱码问题"><a href="#1-日志乱码问题" class="headerlink" title="1.日志乱码问题"></a>1.日志乱码问题</h3><p>这里我们会发现窗口里有很多日志乱码，是编码格式导致的。windows命令行的编码方式和系统默认的一致，我们是中国自然是GBK编</p>
<p>码。而tomcat的日志编码是UTF-8，所以改正这点就好了。</p>
<p>打开tomcat目录下apache-tomcat-9.0.43\conf\logging.properties配置文件</p>
<p>找到下面这行配置<br><code>java.util.logging.ConsoleHandler.encoding = UTF-8</code></p>
<p>将UTF-8改为GBK，重启，就会发现是正常的了</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/60c6a3278ae7f2cbe9bd2865f2ad3587.png"></p>

      
    </div>
    <footer class="article-footer">
      <a data-url="https://renshengdian.gitee.io/renshengdian/2021/11/01/tomcat/" data-id="ckwp2cvnl00075cund9gxflob" data-title="tomcat" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/renshengdian/tags/tomcat/" rel="tag">tomcat</a></li></ul>

    </footer>
  </div>
  
    
<nav id="article-nav">
  
    <a href="/renshengdian/2021/11/01/mysql/" id="article-nav-newer" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Newer</strong>
      <div class="article-nav-title">
        
          mysql
        
      </div>
    </a>
  
  
    <a href="/renshengdian/2021/10/28/hello-world/" id="article-nav-older" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Older</strong>
      <div class="article-nav-title">Hello World</div>
    </a>
  
</nav>

  
</article>


</section>
        
          <aside id="sidebar">
  
    

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tags</h3>
    <div class="widget">
      <ul class="tag-list" itemprop="keywords"><li class="tag-list-item"><a class="tag-list-link" href="/renshengdian/tags/ide/" rel="tag">ide</a></li><li class="tag-list-item"><a class="tag-list-link" href="/renshengdian/tags/jdk/" rel="tag">jdk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/renshengdian/tags/mysql/" rel="tag">mysql</a></li><li class="tag-list-item"><a class="tag-list-link" href="/renshengdian/tags/tomcat/" rel="tag">tomcat</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tag Cloud</h3>
    <div class="widget tagcloud">
      <a href="/renshengdian/tags/ide/" style="font-size: 10px;">ide</a> <a href="/renshengdian/tags/jdk/" style="font-size: 20px;">jdk</a> <a href="/renshengdian/tags/mysql/" style="font-size: 10px;">mysql</a> <a href="/renshengdian/tags/tomcat/" style="font-size: 10px;">tomcat</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/renshengdian/archives/2021/12/">December 2021</a></li><li class="archive-list-item"><a class="archive-list-link" href="/renshengdian/archives/2021/11/">November 2021</a></li><li class="archive-list-item"><a class="archive-list-link" href="/renshengdian/archives/2021/10/">October 2021</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Recent Posts</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/renshengdian/2021/12/02/%E4%B8%AD%E7%A7%91%E8%BE%BE/">(no title)</a>
          </li>
        
          <li>
            <a href="/renshengdian/2021/11/17/Mybatis/">(no title)</a>
          </li>
        
          <li>
            <a href="/renshengdian/2021/11/05/ide%E7%A4%BE%E5%8C%BA%E7%89%88%E9%80%82%E9%85%8D%E4%B8%8D%E4%BA%86tomcat/">ide社区版适配不了tomcat</a>
          </li>
        
          <li>
            <a href="/renshengdian/2021/11/01/ide/">ide</a>
          </li>
        
          <li>
            <a href="/renshengdian/2021/11/01/jdk/">jdk</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      
      &copy; 2021 John Doe<br>
      Powered by <a href="https://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>

    </div>
    <nav id="mobile-nav">
  
    <a href="/renshengdian/" class="mobile-nav-link">Home</a>
  
    <a href="/renshengdian/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    


<script src="/renshengdian/js/jquery-3.4.1.min.js"></script>



  
<script src="/renshengdian/fancybox/jquery.fancybox.min.js"></script>




<script src="/renshengdian/js/script.js"></script>





  </div>
</body>
</html>